<?php

namespace CHOMP\SGIBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;

/**
 * @ORM\Entity(repositoryClass="CHOMP\SGIBundle\Entity\AutorizacionRepository")
 * @ORM\Table(name="Autorizacion")
 */
class Autorizacion
{
    /**
	 * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
     * @ORM\Column(type="string", length=128, nullable=false, unique=false)
	 * @Assert\NotBlank(
	 *       message = "Debe completar el campo."
	 *		)
	 * @Assert\Length(
     *      max = "128",
     *      maxMessage = "El parametro debe tener {{ limit }} caracteres como máximo."
	 *		)
     */
    protected $campo;

    /**
     * @ORM\Column(type="string", length=128, nullable=false, unique=false)
     * @Assert\NotBlank(
     *       message = "Debe completar el campo."
     *      )
     * @Assert\Length(
     *      max = "128",
     *      maxMessage = "El objeto debe tener {{ limit }} caracteres como máximo."
     *      )
     */
    protected $objeto;

    /**
     * @ORM\Column(type="string", length=128, nullable=true, unique=false)
     * @Assert\NotBlank(
     *       message = "Debe completar el campo."
     *      )
     * @Assert\Length(
     *      max = "128",
     *      maxMessage = "El objeto debe tener {{ limit }} caracteres como máximo."
     *      )
     */
    protected $empresa;

	/**
     * @ORM\OneToMany(targetEntity="PermisoAutorizacion", mappedBy="autorizacion")
     **/
    protected $permisoAutorizacion;

	
	/**********************************
     * __construct
     *
     * 
     **********************************/	
    public function __construct($campo, $obj, $empIdString) 
	{

        $this->permisoAutorizacion = new ArrayCollection();
        $this->setCampo($campo);
        $this->setObjeto($obj);
        if (($empIdString == '') || (null == $empIdString ))
            $this->empresa = 'ALL';
        else
            $this->empresa = $empIdString;

    }

	

    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }


    /**
     * Add permisoAutorizacion
     *
     * @param \CHOMP\SGIBundle\Entity\PermisoAutorizacion $permisoAutorizacion
     * @return Autorizacion
     */
    public function addPermisoAutorizacion(\CHOMP\SGIBundle\Entity\PermisoAutorizacion $permisoAutorizacion)
    {
        $this->permisoAutorizacion[] = $permisoAutorizacion;
    
        return $this;
    }

    /**
     * Remove permisoAutorizacion
     *
     * @param \CHOMP\SGIBundle\Entity\PermisoAutorizacion $permisoAutorizacion
     */
    public function removePermisoAutorizacion(\CHOMP\SGIBundle\Entity\PermisoAutorizacion $permisoAutorizacion)
    {
        $this->permisoAutorizacion->removeElement($permisoAutorizacion);
    }

    /**
     * Get permisoAutorizacion
     *
     * @return \Doctrine\Common\Collections\Collection 
     */
    public function getPermisoAutorizacion()
    {
        return $this->permisoAutorizacion;
    }

    /**
     * Set campo
     *
     * @param string $campo
     * @return Autorizacion
     */
    public function setCampo($campo)
    {
        $this->campo = $campo;
    
        return $this;
    }

    /**
     * Get campo
     *
     * @return string 
     */
    public function getCampo()
    {
        return $this->campo;
    }

    /**
     * Set empresa
     *
     * @param string $empresa
     * @return Autorizacion
     */
    public function setEmpresa($empresa)
    {
        $this->empresa = $empresa;
    
        return $this;
    }

    /**
     * Get empresa
     *
     * @return string 
     */
    public function getEmpresa()
    {
        return $this->empresa;
    }

    /**
     * Set objeto
     *
     * @param string $objeto
     * @return Autorizacion
     */
    public function setObjeto($objeto)
    {
        $this->objeto = $objeto;
    
        return $this;
    }

    /**
     * Get objeto
     *
     * @return string 
     */
    public function getObjeto()
    {
        return $this->objeto;
    }
}